移除 /cwd slash 命令,精简运行时工作目录切换逻辑#224
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
|
/review |
|
/simplify |
Result已完成并推送到当前 PR 分支,提交为 本次处理了两类值得修复的问题:
顺手做的简化:
验证: 未处理:没有恢复 fork 侧同步 PR 已创建:wynxing#2 |
Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: Yumiue <188874804+Yumiue@users.noreply.github.com>
fix: rebind session workdir to startup workspace
|
/review -codex |
| a.clearActivities() | ||
| a.state.ActiveSessionTitle = session.Title | ||
| a.state.CurrentWorkdir = tuiworkspace.SelectSessionWorkdir(session.Workdir, a.configManager.Get().Workdir) | ||
| a.setCurrentWorkdir(a.configManager.Get().Workdir) |
There was a problem hiding this comment.
这里把 CurrentWorkdir 重置成了全局 config.Workdir,而不是刚加载出来的 session.Workdir。这会让已持久化了非默认工作目录的会话在重新打开后立刻丢失原来的目录语义;再结合本 PR 中 RequestedWorkdirForRun() 现在始终把 UI 当前目录作为显式覆盖值传回 runtime,下一次运行还会把这个全局目录写回会话,等于静默覆盖掉之前保存的 session.Workdir。结果是 UI 展示、& 本地命令/文件候选,以及后续 agent/tool 执行目录都会偏离该会话上次实际运行的目录,也和 docs/session-persistence-design.md 里对 session.Workdir 的描述不一致。
|
/simplify |
结果已处理并推送到当前 PR 分支,提交为 本次先检查了历史评论,确认前面的大部分 review 点已经处理,只剩一个仍未解决的回归值得修: 已修复的内容:
简化复查:按要求调用了 code-simplifier 子代理复查这块实现,结论是当前改动已经基本是最小形态,没有值得继续收敛的实现点;仅有一个可选的表驱动测试重构,但收益很小,未再变更。 验证: fork 侧同步 PR:wynxing#3 |
Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: Yumiue <188874804+Yumiue@users.noreply.github.com>
fix: preserve session workdir on reload
Summary
/cwdslash 命令及其在 TUI、runtime、gateway 三层的全部实现与引用,共涉及 20 个文件--workdir启动参数指定工作目录的完整链路不受影响loadOrCreateSession、resolveWorkdirForSession等辅助函数(供会话创建和 Run 流程继续使用)变更范围
删除的文件:
internal/tui/core/commands/workspace.go—/cwd命令执行逻辑与SessionWorkdirSetter接口internal/tui/core/commands/workspace_test.go— 对应测试接口裁剪:
runtime.Runtime接口移除SetSessionWorkdir方法gateway.RuntimePort接口移除SetSessionWorkdir方法gateway.FrameActionSetSessionWorkdir帧动作常量移除TUI 层清理:
/cwd命令注册、输入解析分支、结果消息类型及所有桥接函数workspace/resolver.go仅移除ResolveWorkspacePath(仅/cwd使用),保留SelectSessionWorkdir测试同步更新:
SetSessionWorkdir测试函数set_session_workdir用例SetSessionWorkdir实现TestRunSlashCommandSelectionWorkspaceAndLocal为 `TestRunSlashCommandSelectionLocalCommand